package org.desktop.web.client.user;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import org.desktop.web.shared.Response;
import org.desktop.web.shared.domain.entities.SubProject;
import org.desktop.web.shared.domain.entities.User;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.sencha.gxt.data.shared.loader.PagingLoadConfig;
import com.sencha.gxt.data.shared.loader.PagingLoadResult;

@RemoteServiceRelativePath("users")
public interface UserService extends RemoteService {
	

	PagingLoadResult<User> getUsers(Map<String, String> headers,
			PagingLoadConfig loadConfig) throws Exception;

	boolean hasSubProjects(List<SubProject> subprojects) throws Exception;

	boolean update(String token, Serializable user);

	Response delete(Map<String,String> headers,User selectedItem) throws Exception;

	Response saveUser(Map<String, String> headers, User user) throws Exception;;


	// boolean addUserToProject(User user,Project project) throws Exception;
}
